home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 5 / Gekikoh Dennoh Club Vol. 5 (Japan).7z / Gekikoh Dennoh Club Vol. 5 (Japan) (Track 01).bin / tools / condrv / condrv_i.doc < prev    next >
Text File  |  1998-06-25  |  5KB  |  177 lines

  1.              * condrv(em).sys version 1.09c+11 *
  2.             * Application Programming Interface *
  3.  
  4.  
  5. * âVâXâeâÇâRü[âï------------------------------ *
  6.  
  7. d0.w = $0000
  8.     ï@ö\ : âoâbâtâ@âèâôâOɺîΣ
  9.     ôⁿù═ : d1.w == 0 : OFF
  10.             != 0 : ON
  11.     Åoù═ : d0.l = 0
  12.     ö⌡ìl : Å]ùêé⌐éτéáéΘï@ö\é┼é╖üBâVâXâeâÇâXâeü[â^âXé╠ì─ò\Īé═èeÄ⌐é┼ìsé┴é─ë║é│éóüB
  13.  
  14. d0.w = $0010
  15.     ï@ö\ : â}âEâXɺîΣ(û│î°)
  16.     ôⁿù═ : é╚é╡
  17.     Åoù═ : d0.l = 0
  18.     ö⌡ìl : â}âEâXâïü[â`âôé╠ìφÅ£é╔ö║é┴é─û│î°ë╗é╡é─éáéΦé▄é╖üB
  19.  
  20. d0.w = $0020
  21.     ï@ö\ : IOCS _KEY_INIT é╠âtâbâN
  22.     ôⁿù═ : a1.l = Åêù¥âAâhâîâX
  23.     Åoù═ : d0.l = î│é╠É▌ÆΦâAâhâîâX
  24.     ö⌡ìl : IOCS _KEY_INIT é¬î─é╤Åoé│éΩé╜Ä₧é╔Ä└ìsé╖éΘâTâuâïü[â`âôé≡ôoÿ^é╡é▄é╖üB
  25.            IOCS é╠âxâNâ^é≡ò╧éªé╕é╔ CONDRV.SYS é┼âtâbâNé╡é╜âïü[â`âôôαòöé⌐éτî─é╤
  26.            Åoé╖é╠é┼üAÅ]ùêé╠(IOCTRL é≡Ägéφé╚éó)ò√û@é╔éµéΘɺîΣé≡æjèQé╡é▄é╣é±üB
  27.  
  28. d0.w = $0021
  29.     ï@ö\ : IOCS _KEY_INIT é╠âtâbâNë≡Å£
  30.     ôⁿù═ : a1.l = î╗ì▌é╠Åêù¥âAâhâîâX
  31.            a2.l = î│é╠Åêù¥âAâhâîâX
  32.     Åoù═ : d0.l =  0 : É│ÅφÅIù╣
  33.               -2 : âAâhâîâXé¬ê┘Åφ
  34.     ö⌡ìl : d0.w = $0020 é┼ôoÿ^é╡é╜âTâuâïü[â`âôé≡ìφÅ£é╡é▄é╖üB
  35.            CONDRV.SYS ôαòöé┼ïLë»é╡é─éóéΘâAâhâîâXé╞ a1.l é¬ê┘é╚éΘÅΩìçé═âGâëü[é╞é╚éΦé▄é╖üB
  36.  
  37. d0.w = $0022
  38.     ï@ö\ : IOCS _KEY_INIT é╠Åêù¥âAâhâîâXÄ√ô╛
  39.     ôⁿù═ : é╚é╡
  40.     Åoù═ : d0.l = âAâhâîâX
  41.     ö⌡ìl : d0.w = $0020 é┼ôoÿ^é╡é╜ì┼îπé╠âTâuâïü[â`âôé╠âAâhâîâXé≡ò╘é╡é▄é╖üB
  42.  
  43. d0.w = $0023
  44.     ï@ö\ : âoâbâtâ@âèâôâOùÜù≡ɺîΣ
  45.     ôⁿù═ : d1.w == 0 : POP
  46.             != 0 : PUSH
  47.     Åoù═ : d0.l =  0 : É│ÅφÅIù╣
  48.               -2 : âXâ^âbâNé¬ï≤é╠Ä₧é╔ POP é╡éµéñé╞é╡é╜é⌐üA
  49.                âXâ^âbâNé¬û₧öté╠Ä₧é╔ PUSH é╡éµéñé╞é╡é╜ÅΩìçüB
  50.     ö⌡ìl : î╗ì▌é╠âoâbâtâ@âèâôâOâéü[âhé≡âXâ^âbâNé╔æ╥ö≡üAé▄é╜é═
  51.            ì┼îπé╔æ╥ö≡é╡é╜âéü[âhé≡âXâ^âbâNé⌐éτĵéΦÅoé╡é─É▌ÆΦé╡é▄é╖üB
  52.            âVâXâeâÇâXâeü[â^âXé╠ì─ò\Īé═èeÄ⌐é┼ìsé┴é─ë║é│éóüB
  53.            âXâ^âbâNé═32ë±ò¬é╠æ╥ö≡é¬ÅoùêéΘùeù╩é¬éáéΦé▄é╖üB
  54.            XCONT PUSH/POP ùpé╔É▌é»é╜ï@ö\é╚é╠é┼üAæ╝é╠âAâvâèâPü[âVâçâô
  55.            é⌐éτé═Ägùpé╡é╚éóé┼ë║é│éóüB
  56.  
  57. d0.w = $0024
  58.     ï@ö\ : âoâbâtâ@âèâôâOɺîΣII
  59.     ôⁿù═ : d1.w == -1 : ON (stop_level--)
  60.             ==  0 : î╗ì▌é╠âîâxâïé≡Ä√ô╛é╖éΘ
  61.             == +1 : OFF(stop_level++)
  62.     Åoù═ : d0.l = ò╧ìXîπé╠âîâxâïé≡ò╘é╖(0ü`65535)
  63.             == -1 : âîâxâïé¬è∙é╔Åπî└/ë║î└é╔ÆBé╡é─éóéΘ
  64.     ö⌡ìl : âåü[âUé╠ C-bs é╔éµéΘâoâbâtâ@âèâôâOé╠ÆΓÄ~é╞é═û│è╓îWé╔ô«ì∞é╖éΘ
  65.            æµô±é╠âoâbâtâ@âèâôâOù}ɺï@ö\é┼é╖. ÆΓÄ~âîâxâï鬠1 ê╚Åπé╠ÅΩìç
  66.            âoâbâtâ@âèâôâOé¬ìséφéΩé╚é¡é╚éΦé▄é╖. âåü[âUé╠âLü[æÇì∞é┼ɺîΣ
  67.            é╖éΘé▒é╞é═ÉΓæ╬é╔Åoùêé▄é╣é±.
  68.            âAâvâèâPü[âVâçâô鬠d0.w = $0000 é╠ï@ö\é┼ÆΓÄ~é│é╣éΘé╞üAâåü[âU
  69.            é¬ C-bs é≡ôⁿù═é╖éΘé╞ì─èJé╡é─é╡é▄éñòsôsìçé¬éáéΘé╠é┼üAìíîπé═
  70.            é▒é┐éτé≡Ägùpé╖éΘéµéñé╔é╡é─ë║é│éó.
  71.  
  72. d0.w = $ffff
  73.     ï@ö\ : âoü[âWâçâôîƒì╕
  74.     ôⁿù═ : é╚é╡
  75.     Åoù═ : d0.l == -1 : ÅâÉ│òi
  76.             == 'e??#' : ?? = ö┼Éö(ùß:'05'), # = ÅCÉ│ö┼ö╘ìå(ùß:' ','a')
  77.  
  78. d0.w é¬ûóÆΦï`é╠ÉöÆlé╛é┴é╜ÅΩìçé═ d0.l = -1 é≡ò╘é╡é▄é╖üB
  79.  
  80.  
  81. * î÷èJâÅü[âN --------------------------------- *
  82.  
  83. IOCS _KEY_INIT é╠âxâNâ^-4é╠âAâhâîâXé╠âfü[â^é¬'hmk*'é┼éáéΩé╬ CONDRV.SYS
  84. é═æ╢ì▌é╡üAô»-28é╠âAâhâîâXé⌐éτ28âoâCâgé¬î÷èJâÅü[âNüB
  85. é╜é╛é╡üAî÷èJé│éΩé─éóéΘé╠é═êΩòöé╠ôαùeé╛é»é┼éáéΘüB
  86.  
  87. <ü¢>:  î÷èJâÅü[âN
  88. <ü~>:ö±î÷èJâÅü[âN
  89.  
  90. offset    size
  91.  0(-28)    1.b    <ü~>ïNô«Ä₧é╠âIâvâVâçâô(bit7=1:-jüAbit0=1:-f)
  92.             (bit1=1:BG æ╬ë₧/sleep âéü[âhüAxcont é┼Ägùpé╖éΘé╠é┼ò╧ìXï╓Ä~)
  93.  1(-27)    1.b    <ü~>ûóÄgùp
  94.  2(-26)    1.w    <ü~>ûóÄgùp(âIâèâWâiâïé┼é═âyü[âXâgé╠âJâEâôâ^)
  95.  4(-24)    1.w    <ü~>üV      (üV         âyü[âXâgé╠âJâEâôâ^Åëè·Æl)
  96.  6(-22)    1.l    <ü¢>âVâXâeâÇâRü[âïé╠âAâhâîâX
  97. 10(-18)    1.b    <ü¢>ï≤ò╢ÄÜù±(âIâèâWâiâïé┼é═ö±î÷èJüAûóÄgùp)
  98. 11(-17)    1.b    <ü¢>âLü[æÇì∞ù}ɺâtâëâO(âåü[âUâvâìâOâëâÇé┼ò╧ìXë┬ö\)
  99. 12(-16)    1.l    <ü¢>âoâbâtâ@Åæé½ì₧é▌âïü[â`âôé╠âAâhâîâX
  100. 16(-12)    1.l    <ü¢>âyü[âXâgâoâbâtâ@é╠âTâCâY
  101. 20( -8)    1.l    <ü¢>âyü[âXâgâoâbâtâ@é╠âAâhâîâX
  102. 24( -4)    1.l    <ü¢>Ä»ò╩Äq'hmk*'
  103. 28(  0)    ---    IOCS _KEY_INIT é╠Åêù¥âïü[â`âô
  104.  
  105. üuï≤ò╢ÄÜù±üvé═Åφé╔ 0(NUL)é┼üAâyü[âXâgâoâbâtâ@Åæé½ì₧é▌Ä₧é╔êΩÄ₧ôIé╔
  106. âyü[âXâgèJÄnâAâhâîâXé╞é╡é─É▌ÆΦé╡é─é¿é¡ê╫é╔ùpê╙é│éΩé─éóéΘ.
  107.  
  108. é▄é╜üAâyü[âXâgâoâbâtâ@é╠âAâhâîâX-8é⌐éτé╠4âoâCâgéαî÷èJé│éΩé─éóéΘüB
  109.  
  110. offset    size
  111. 0(-8)    1.l    <ü¢>âyü[âXâgèJÄnâAâhâîâX(âåü[âUâvâìâOâëâÇé┼ò╧ìXë┬ö\)
  112. 4(-4)    1.l    <ü~>âoâbâNâìâOâoâbâtâ@é╠âAâhâîâX
  113. 8( 0)    ?.b    âyü[âXâgâoâbâtâ@(âåü[âUâvâìâOâëâÇé┼Åæé½ì₧é▌ë┬ö\)
  114.  
  115. é╚é¿üAâoâbâNâìâOâoâbâtâ@é╠âAâhâîâXé⌐éτîvÄZé╡é╜Ælé┼âoâbâtâ@é╠Åëè·ë╗é≡ìsé┴é─é═
  116. é╚éτé╚éóüBôαòöâÅü[âNé╠Åëè·ë╗éαòKùvé┼üAû│ù¥é╔Åëè·ë╗é╖éΘé╞ì┼ê½é╠ÅΩìçû\æûé╖éΘüB
  117.  
  118.  
  119. * Condrv System Call Sample $0020 ------------ *
  120.  
  121.     ....
  122.     lea    (new_iocs_key_init,pc),a1
  123.     moveq    #$20,d0
  124.     jsr    (a0)                System Call
  125.     lea    (orig_iocs_key_init,pc),a1
  126.     move.l    d0,(a1)
  127.     ....
  128.  
  129. CHK_0    .macro
  130.     .local    skip
  131.     bne    skip
  132.     addq.l    #4,sp
  133. skip:
  134.     .endm
  135.  
  136. new_iocs_key_init:
  137.     .ifdef    TYPE1 : ÉVé╡éóÅêù¥é≡ìsé┴é─é⌐éτî│é╠Åêù¥é≡ìséñÅΩìç
  138.         move.l    (orig_iocs_key_init,pc),-(sp)
  139.         CHK_0
  140.         bra    new_iocs_key_init_main
  141.     .else    TYPE2 : î│é╠Åêù¥é≡ìsé┴é─é⌐éτÉVé╡éóÅêù¥é≡ìséñÅΩìç
  142.         pea    (new_iocs_key_init_main,pc)
  143.         move.l    (orig_iocs_key_init,pc),-(sp)
  144.         CHK_0
  145.         rts
  146.     .endif
  147. new_iocs_key_init_main:
  148.     ....
  149.     rts
  150.  
  151. orig_iocs_key_init:
  152.     .dc.l    0
  153.  
  154. * CONDRV.SYS Ä⌐æ╠é═ TYPE1 é┼é╖üB
  155. * CHK_0 â}âNâìé═ê└æSé╠ê╫é╔êΩë₧ïLÅqé╡é─éáéΦé▄é╖é¬üAò╩é╔ôⁿéΩé╚é¡é─éαéóéóé┼é╖üB
  156. * êΩë±û┌é╠âtâbâNé╠ò╘Ælé═ IOCS _KEY_INIT é╠î│é╠Åêù¥âAâhâîâXé╗é╠éαé╠é╞é╚éΦé▄é╖üB
  157.  
  158. * Condrv System Call Sample $0021/$0022 ------ *
  159.  
  160.     ....
  161.     moveq    #$22,d0
  162.     jsr    (a0)                System Call
  163.     lea    (new_iocs_key_init,pc),a1
  164.     cmpa.l    d0,a1
  165.     bne    restor_error
  166.  
  167. *    lea    (new_iocs_key_init,pc),a1
  168.     movea.l    (orig_iocs_key_init,pc),a2
  169.     moveq    #$21,d0
  170.     jsr    (a0)                System Call
  171. *    bmi    restor_error
  172.     ....
  173.  
  174. * -------------------------------------------- *
  175.  
  176. [EOF]
  177.